home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fritz: All Fritz
/
All Fritz.zip
/
All Fritz
/
FILES
/
PROGBLER
/
ASMCODE.LZH
/
PREVIEW.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1984-07-21
|
3KB
|
108 lines
{ $PAGESIZE:80,$LIST+, $DEBUG+, $BRAVE+, $LINESIZE:132, $OCODE+ }
{ $NILCK+, $MATHCK+, $RANGECK+, $INITCK+, $INDEXCK+, $ENTRY+ }
{ $LINE+, $RUNTIME+, $SYMTAB+, $WARN+, $GOTO+ }
{ $TITLE:'WCOUNT.PAS (VOL-ID: MSB-PASSCRATCH) -- WRDCOUNT PROG'}
{ $SUBTITLE:'PROGRAM FOR CHECKING CONTENTS OF ASCII FILES'}
{ $MESSAGE:'PASCAL - COMPILATION OPTIONS SET' }
{ $MESSAGE:'SYSTEM - COMPILATION BEGINS' }
{ $LIST-}
{ $INCLUDE:'A:FILKQQ.INC'}
{ $INCLUDE:'A:FILUQQ.INC'}
{ $LIST+}
PROGRAM WRDCNT (INPUT,OUTPUT); USES FILUQQ,FILKQQ;
CONST
WRDLEN = 20; {MAX WRD LENGTH}
BLANK = ' '; {A BLANK CHAR}
PGLINES = 66;
TYPE
ALFASET = SET OF CHAR;
VAR
NEW_WRD : LSTRING(WRDLEN);
SOURCE : TEXT; {SOURCE FILE}
PGCNT, LNCNT, WDCNT, CHCNT : WORD;
ALPHA : ALFASET;
CMDLINE : LSTRING (80); {80 CHARS FOR THE COMMAND LINE ENOUGH}
CURTIME, CURDATE : STRING(10);
PROCEDURE DATE (VAR S:STRING); EXTERN; {LIBR FUNCTION}
PROCEDURE TIME (VAR S:STRING); EXTERN; {LIBR FUNCTION}
PROCEDURE ENDXQQ; EXTERN;
PROCEDURE INITIALIZE;
VAR
ERROR : WORD;
BEGIN
ALPHA := ['A'..'Z','a'..'z', '_', '$'];
TIME (CURTIME);
DATE (CURDATE);
CMDLINE := NULL;
SOURCE.TRAP := TRUE;
ERROR := PPMUQQ (0,ADR NULL,CMDLINE);
IF CMDLINE = NULL THEN {FILENAME WAS NOT GIVEN ON COMMAND LINE}
BEGIN
WRITE (OUTPUT, 'MSB> FILE? ');
SOURCE.TRAP := TRUE;
READFN (INPUT, SOURCE); {READ AND ASSIGN FILENAME}
END
ELSE {ASSIGN THE NAME BY HAND}
ASSIGN (SOURCE,CMDLINE);
RESET (SOURCE);
IF SOURCE.ERRS <> 0 THEN
BEGIN
WRITELN (OUTPUT, 'MSB> *** File Not Found, or Disk Error');
ENDXQQ
END;
PGCNT := 00;
LNCNT := 00;
WDCNT := 00;
CHCNT := 00;
END; {PROCEDURE}
PROCEDURE SCANFILE;
VAR
I : INTEGER;
C : CHAR;
BEGIN
C := BLANK;
I := 00;
WHILE NOT EOF (SOURCE) DO
BEGIN
WHILE NOT EOF(SOURCE) AND NOT (C IN ALPHA) DO
BEGIN
IF EOLN (SOURCE) THEN LNCNT := LNCNT + 1;
READ (SOURCE, C); CHCNT := CHCNT + 1;
END;
WHILE NOT EOF(SOURCE) AND (C IN ALPHA) DO
BEGIN
IF EOLN (SOURCE) THEN LNCNT := LNCNT + 1;
CHCNT := CHCNT + 1; I := I + 1;
IF I <= WRDLEN THEN
NEW_WRD [I] := C;
READ (SOURCE, C)
END;
IF I > 0 THEN
BEGIN
I := 0;
WDCNT := WDCNT + 1
END
END
END; {PROCEDURE}
BEGIN {MAIN}
INITIALIZE;
WRITELN (OUTPUT, 'MSB> *IN PROGRESS ',CURDATE,NULL:1,CURTIME);
SCANFILE;
PGCNT := LNCNT DIV PGLINES;
CHCNT := CHCNT - LNCNT; {CARRIAGE RETURN CHARS HAVE BEEN INCLUDED}
IF LNCNT MOD PGLINES <> 00 THEN PGCNT := PGCNT + 1;
WRITELN (OUTPUT,NULL:10,'LINES: WORDS: CHARS: PAGES:');
WRITELN (OUTPUT,NULL:10,'----- ----- ----- -----');
WRITELN (OUTPUT,NULL:10,LNCNT:5,NULL:4,WDCNT:5,NULL:5,CHCNT:5,NULL:5,PGCNT:5);
END.